package com.htjc.uep.center.commons.utils;

import com.alibaba.fastjson.JSONObject;
import com.htjc.uep.center.model.enums.ErrorStatus;
import com.htjc.uep.center.model.enums.ResultErrorStatus;
import com.htjc.uep.center.model.result.BaseResultModel;
import com.htjc.uep.center.model.result.ErrorResultModel;
import com.htjc.uep.center.model.result.SignResultModel;
import com.htjc.uep.center.model.service.enums.ReturnResponse;

public class JsonUtil {

	/**
	 * 对象转换为JSON字符串
	 * @param obj
	 * @return
	 */
	public static String bean2Json(Object obj) {
		return JSONObject.toJSONString(obj);
	}
	
	/**
	 * 
	 * @param <T>
	 * @param str
	 * @return
	 */
	public static <T> T json2Bean(String str, Class<T> clazz) {
		JSONObject json = JSONObject.parseObject(str);
		return JSONObject.toJavaObject(json, clazz);
	}
	
	/**
	 * 使用公共返回模板组装Json
	 * @param json
	 * @return
	 */
	public static String getSuccess(Object json){
		return JSONObject.toJSONString(BaseResultModel.resultSuccess(json));
	}
	/**
	 * 使用公共返回模板组装Json(带sign)
	 * @param json
	 * @return
	 */
	public static String getSuccessSign(String sign, Object json){
		return JSONObject.toJSONString(SignResultModel.resultSuccess(sign, json));
	}
	/**
	 * 使用公共返回模板组装Json
	 * @param json
	 * @return
	 */
	public static String getError(Object json) {
		return JSONObject.toJSONString(BaseResultModel.resultError(ResultErrorStatus.ERROR, json));
	}
	/**
	 * 通过指定的Error模板组装Json
	 * @return
	 */
	public static String getError(ErrorStatus status) {
		ErrorResultModel errorModel = new ErrorResultModel(status.getCode(), status.getMessage());
		return JSONObject.toJSONString(BaseResultModel.resultError(ResultErrorStatus.ERROR, errorModel));
	}
	/**
	 * 通过指定的Error模板组装Json
	 * @return
	 */
	public static String getError(ReturnResponse status) {
		ErrorResultModel errorModel = new ErrorResultModel(status.getReturnCode(), status.getReturnMessage());
		return JSONObject.toJSONString(BaseResultModel.resultError(ResultErrorStatus.ERROR, errorModel));
	}
}










































